
//文字说明特别版
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

int main()
{
    int x=5;
    int y=0;
    int vx=1;
    int vy=1;
    char p='|';                         //设置各种变量，初始位置，速度
    printf("请输入横纵速度");
    scanf("%d%d",&vx,&vy);              //允许输入速度

    int left=0;
    int right=20;
    int top=0;
    int bottom=10;                      //定义边框范围

    int i=0;
    int j=0;
    int c=0;
    int d=0;
    int e=0;                            //循环用变量

    while (1)                           //主循环
    {



        x=x+vx;
        y=y+vy;                         //设置每次变化后的位置（上一次位置+速度）


        system("cls");                  //清屏
        c=1;
        d=1;
        while(c<=right+1)
        {
            printf("==");
            c++;
        }                               //上边框


        for(i=0;i<=x;i++)
        {

                printf("                                         |\n");

        }                               //输出小球以上的右边框


        for(j=0;j<y;j++)
            {
                printf("  ");
            }                           //输出小球前面的空格

        printf("o");                    //输出小球
        for(d=j+1;d<=right;d++)
        printf("  ");       
        printf("|");                    //这步和上一步输出小球那一行的右边框

        for(e=i-1;e<=bottom;e++)
            {
                printf("                                         |\n");
            }                           //输出小球下面的右边框
        c=1;                            //初始化c，方便输出下边框

        while(c<=right+1)
        {
            printf("==");
            c++;
        }                               //输出下边框

        Sleep (100);                    //调整频闪速度

        if((x<=top)||(x>=bottom))       
            {vx=-vx;
            printf("\a");}
        if((y<=left)||(y>=right))
            {vy=-vy;
            printf("\a");}              //当小球触碰边界即反向
            printf("\n");               //回车，啥用没有，但是装逼


    }

}